#include <bits/stdc++.h>

using namespace std;

class Solution
{
public:
    // string removeDuplicates(string s)
    // {
    //     int length = s.size();
    //     stack<int> stk;
    //     for (int i = 0; i < length; i++)
    //     {
    //         if (stk.empty() || stk.top() != s[i])
    //         {
    //             stk.push(s[i]);
    //         }
    //         else
    //         {
    //             stk.pop();
    //         }
    //     }
    //     string str;
    //     while (!stk.empty())
    //     {
    //         str.push_back(stk.top());
    //         stk.pop();
    //     }
    //     reverse(str.begin(),str.end());
    //     return str;
    // }

    string removeDuplicates(string s)
    {
        string str;
        for (auto ch : s)
        {
            if (str.empty() || str.back() != ch)
            {
                str.push_back(ch);
            }
            else
            {
                str.pop_back();
            }
        }
        return str;
    }
};

int main()
{
    string str{"abbaca"};
    Solution sol;
    cout << sol.removeDuplicates(str) << endl;
    return 0;
}